This invention relates to printers, such as laser and color laser printers. More particularly, this invention relates to methods for alternately printing and compressing data during the same engine cycle using the same processing unit.
A typical printer receives data from a host computer in a driver format, such as PCL or postscript. The printer converts the host data to a bitmap containing raster data for individual pixels to be printed. The printer compresses the raster data for storage and subsequently decompresses the raster data in real-time. The printer sends the raster data to the print engine, which prints the data onto a recording media.
Printer firmware must perform both compression and printing (or xe2x80x9cvideoxe2x80x9d) operations. Ideally, these tasks are performed at the same time to preserve engine speed and overall printer throughput. With existing firmware and printing methods, one solution for achieving this ideal is to implement two application specific integrated circuits (ASICs), one to process the incoming host data and another to drive the print engine and printing mechanism to print the data. Unfortunately, implementing a second ASIC in the printer firmware adds considerable expense to the printer.
Accordingly, there is a need to design printer firmware that performs both the processing and printing tasks using only one ASIC, while maintaining an acceptable engine speed.
This invention concerns a printer that performs both the processing and printing tasks efficiently using controller firmware with a single data path (i.e., one ASIC). The printer has a periodic print cycle in which data for one page or plane (if multi-colored) is printed during each cycle. The print cycle is typically longer than the time needed to print one page or plane. Thus, the print cycle can be segmented into a xe2x80x9cprinting phasexe2x80x9d in which the printing mechanism prints data, and a xe2x80x9cnon-printingxe2x80x9d phase in which the printing mechanism does not print data. For instance, in a laser printer, the non-printing phase is used for drum rotation to return the drum to the proper position for printing the next page or plane.
The controller firmware interleaves printing operations with non-printing operations during the printing and non-printing phases of the print cycle, respectively. During the printing phase, the controller is dedicated to printing a page or plane. During the non-printing phase, the controller is free to perform other tasks, such as compressing raster data for subsequent printing.
The printer is configured with a set of operating parameters that enable the controller firmware to alternate between printing and non-printing tasks (e.g., data compression). Once released from manufacturing, the printer may, in practice, not perform optimally to the specifications. Thus, another aspect of this invention is to tune the operating parameters to achieve optimal erformance for a specific printer. This tuning is a self-tuning technique that is performed in post-manufacture real-time, while the printer is in operation.